The present invention relates to automatic methods for creating and editing topics for virtual robots conversing with users in natural language.
In the following co-pending and co-assigned applicationsxe2x80x94Ser. No. 09/017,760 entitled xe2x80x9cMethods for Automatically Verifying the Performance of a Virtual Robotxe2x80x9d, filed Feb. 3, 1998, and Ser. No. 08/868,713 entitled xe2x80x9cMethods for Automatically Focusing the Attention of a Virtual Robot Interacting with Usersxe2x80x9d, filed Jun. 4, 1997xe2x80x94herein incorporated by reference, methods are described for automatically focusing and verifying virtual robots. Virtual robots (or xe2x80x9cBOTsxe2x80x9d) are generally software programs that interact and/or communicate with users (human, machine or otherwise) that take actions or make responses according to input from these users. A common use of such a BOT is as an interface to a web site wherein the administrator of that site has programmed the BOT to answer simple inquiries that are typically asked by visitors to the site. The above identified applications disclose methods for creating BOTs according to xe2x80x9cscriptsxe2x80x9dxe2x80x94i.e. programs that are written in a very high level language that closely resembles a human natural language. These scripts embody a certain amount of information concerning the site that the administrator desires the BOT to communicate to a user during a connection session.
If a BOT is to be deployed in a publicly accessible way such as a web page or chat site, there is a need to test the BOT as thoroughly as possible to ensure that, as often as possible, it will produce an appropriate response to the inputs that it is likely to receive and the situations that it is likely to encounter. In this context, xe2x80x9cinputxe2x80x9d refers to any description of a situation the BOT may encounter; although the most common inputs are textual inputs from users, inputs can be actions taken by users, external circumstances, or even events internal to the BOT such as an internal alarm clock. If the BOT can be tested in advance, the person or organization that is deploying the BOT can be more certain of its likely performance, and errors can be detected in advance that might otherwise result in mistakes that could mislead users interacting with the BOT and/or reflect poorly on the authors or deployers of the BOT.
Historically, most BOTs have been tested manually, by having a human user or set of human users interact with the BOT and observe any errors it might make. Such testing is ordinarily done when the BOT is first written, and may continue throughout the lifetime of the BOT as changes are made to it. Testing can also be said to occur after deployment as users interact with the BOT; errors found through this form of testing indicate that the BOT has already made a mistake when publicly deployed. Thus, there is a need to test thoroughly before public deployment.
Such human testing, although usually necessary, has a number of drawbacks. First, it is time-consuming. A typical BOT may contain thousands of possible responses, all of which need to be tested. Second, it is usually incomplete. Unless the testers are given a list of all possible responses that should be tested, the testers will only cover a subset of the possible responses. Furthermore, if the response given to an input may depend on the context, there is an exponential number of response sequences that must be tested. Finally, it is difficult to maintain assurance as changes are made to the BOT. In most BOTs, each change can potentially affect the responses given to many other inputs, so the entire testing effort must be repeated for each set of changes that are made to the BOT.
In U.S. patent application Ser. No. 09/017,760 entitled xe2x80x9cMethods for Automatically Verifying the Performance of a Virtual Robotxe2x80x9d, a method of automatically verifying BOT performance is disclosed in which xe2x80x9cexamplexe2x80x9d input statements are associated with particular categories such that the example input, when input into the running BOT, should activate that particular category. If that category is not activated as a result of inputting the example statement, a potential error condition is detected.
Once detected, there is a need for aiding the BOT author to correct the potential error by either extending the script description for the category in question, or authoring new categories so that the example statement is adequately handled by the system.
There is additionally a need for such an authoring system to operate on new examples suggested by the BOT author to aid in the creation of a wholly new topic.
There is additionally a need for such update and creation mechanisms to be as automated as possible so as to aid the human author for quick and accurate deployment of the virtual robot.
The present invention meets the aforementioned needs by providing automated methods of editing and authoring topic scripts. Typically, topic scripts comprise example statements that typify the topic in question and patterns that are matched against user input to determine if the topic is activated by the user input. The steps of one embodiment of the present invention comprise:
for an example statement associated with said topic script;
testing said example statement against patterns in the topic script to determine if said example statement activates said topic;
for a word in an example statement not activating said topic:
identifying zero or more pattern lists matching said word;
choosing one action from among a group of actions comprising:
keeping said word; and
replacing said word with a pattern list;
adding zero or more revised patterns to said topic script.
In another aspect of the present invention, the script author may create an entirely new topic script from scratch using the automated methods of the present invention. The author would create new example statements initially that embody the topic that the author seeks to address. These new example statements would then be applied to the automated methods of the present invention in order to create patterns in order to xe2x80x9ccoverxe2x80x9d the example statementsxe2x80x94i.e. insure that the topic being created would be activated upon the input of the example statement in question.
In yet another aspect of the present invention, the associated example statements may be run through existing priority topics to produce patterns that are more specific to the topic at hand.
One advantage of the present invention is accuracy. The methods of the present invention help to debug topic scripts to ensure that the topics in question are in fact activated by the example statements associated with the topic.
Another advantage of the present invention is speed. The methods of the present invention are automated and implemented in simple dialog boxes to aid the script author in editing existing topic scripts or create entirely new scripts.
Yet another advantage is generality. The methods of the present invention help to produce topic scripts that answer questions broader than and/or synonymous to the literal example statements.